Unless otherwise indicated herein, the description provided in this section is not prior art to the claims and is not admitted to be prior art by inclusion in this section.
A computing device arranged to engage in data communication may implement a protocol stack defining a sequence of logical layers for handling the communication. By way of example, to support signaling for setup and management of real-time packet-based media sessions such as voice over Internet Protocol (VoIP) sessions for instance, a computing device may implement a protocol stack that includes an application layer, a Session Initiation Protocol (SIP) layer (i.e., a session layer), and a line handler layer (e.g., a transport layer), each of which may comprise program instructions defining a procedure or set of procedures executable by a processing unit to carry out particular functions.
To set up a real-time packet-based media session with a remote network entity, for instance, these layers may work together to facilitate engaging in packet-based SIP signaling with the remote entity, which may include sending to the remote entity a session initiation request such as a SIP INVITE message, receiving in response from the remote entity a session acceptance such as a SIP 200 OK message, and then transmitting to the remote entity a session setup acknowledgement message such as a SIP ACK message, to complete setup of the session.
In particular, when the application layer seeks to set up a communication session with the remote entity, the application layer may generate and pass to the SIP layer an inter-process communication (IPC) carrying an action code defining a session initiation request. Upon receipt of that IPC, the SIP layer may then establish in memory of the computing device a context record for the session and generate and pass to the line handler layer an IPC carrying a SIP INVITE message. And upon receipt of that IPC, the line handler layer may then encapsulate the SIP INVITE in a transport header and output the resulting transport packet for transmission to the remote entity. (In practice, a network layer of the stack may then receive the transport packet, encapsulate the transport packet in a network header including source and destination IP addresses, and output the resulting IP packet for transmission via a physical layer to the remote entity.)
When the computing device then receives in response from the remote entity a packet encapsulating a SIP 200 OK message, the line handler layer may then extract the SIP 200 OK message and pass the SIP 200 OK in an IPC to the SIP layer, and the SIP layer may update the context record and pass to the application layer an IPC carrying an action code defining a session acceptance. Upon receipt of that IPC, the application layer may then generate and pass to the SIP layer an IPC carrying an action code defining a session setup acknowledgement, the SIP layer may responsively update the context record and generate and pass in an IPC to the line handler layer a SIP ACK message, and the line handler layer may encapsulate the SIP ACK in a packet header and output the packet for transmission the remote entity.